//
//  HMMainTabBarController.swift
//  weibo2
//
//  Created by 仰望星空 on 16/7/18.
//  Copyright © 2016年 仰望星空. All rights reserved.
//

import UIKit

class HMMainTabBarController: UITabBarController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //设置自定义TabBar
        let mainmTabBar = HMMainTabBar()
        
        //定义和传递闭包
        mainmTabBar.composeCallback = {() -> Void in
            
            print("我在控制器里面知道加号按钮点击了")
            
            
        }
        
            // 设置tabbarVC的tabBar
            // = 直接赋值, get-only 就不能直接赋值
            //        self.tabBar = mainTabBar
            // 间接赋值, KVC
            self.setValue(mainmTabBar, forKey: "tabBar")
            
            addChildViewControllers()
        
            
        }
        
        func addChildViewControllers(){
            
            //添加所有子控制器
            //首页
            //创建首页控制器
            let homeVC = HMHomeTableViewController()
            //设置标题和图片
            addChildViewControllercontroller(homeVC, title: "首页", imageName: "tabbar_home")
            
            // 消息
            //创建消息控制器
            let messageVC = HMMessageTableViewController()
            //设置标题和图片
            addChildViewControllercontroller(messageVC, title: "消息", imageName: "tabbar_message_center")
            
            // 发现
            //创建发现控制器
            let discoveryVC = HMDiscoveryTableViewController()
            //设置标题和图片
            addChildViewControllercontroller(discoveryVC, title: "发现", imageName: "tabbar_discover")
            
            //我
            //创建我控制器
            let profileVC = HMProfileTableViewController ()
            
            //设置标题和图片
            addChildViewControllercontroller(profileVC, title: "我", imageName: "tabbar_profile")
            
        }
        /**
         添加子控制器,会包装导航控制器
         
         - parameter controller: 控制器
         - parameter title:      title
         - parameter imageName:  图片名称
         */
        func addChildViewControllercontroller(controller:UIViewController,title:String,imageName:String) {
            
            controller.title = title
            //设置选中时字体颜色
            controller.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.orangeColor()], forState: UIControlState.Selected)
            controller.tabBarItem.image = UIImage(named: imageName)
            //设置未选中时的图片
            controller.tabBarItem.image = UIImage(named:imageName)
            
            //拼接选中图片的名称
            let selectedImageName = imageName + "_selected"
            //设置选中的图片
            controller.tabBarItem.selectedImage = UIImage(named:selectedImageName)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            
            //将子控制器添加到tabBar上（包含了一个NavigationController）
            self.addChildViewController(UINavigationController(rootViewController: controller))
            
        }
        
        
        
}

